package com.example.ayniu.treadmill.util;

import com.example.ayniu.treadmill.bean.ClassBean;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;

import java.util.ArrayList;
import java.util.List;

/**
 * 基于Gson封装的简单工具类JsonUtil
 * Created by Ayniu on 2017/4/7.
 */

public class JsonUtil {

    private static Gson mGson = new Gson();

    /**
     * 将json字符串转化成实体对象
     * @param json
     * @param classOfT
     * @return
     */
    public static Object stringToObject( String json , Class classOfT){
        return  mGson.fromJson( json , classOfT ) ;
    }

    /**
     * 将对象准换为json字符串 或者 把list 转化成json
     * @param object
     * @param <T>
     * @return
     */
    public static <T> String objectToString(T object) {
        return mGson.toJson(object);
    }

    /**
     * 把json 字符串转化成list
     * @param json
     * @param cls
     * @param <T>
     * @return
     */
    public static <T>  List<T> stringToList(String json ,Class<T> cls  ){
        Gson gson = new Gson();
        List<T> list = new ArrayList<T>();
        JsonArray array = new JsonParser().parse(json).getAsJsonArray();
        for(final JsonElement elem : array){
            list.add(gson.fromJson(elem, cls));
        }
        return list ;
    }

    public static List<ClassBean> GetJsonToClassBean(String jsonString){
        List<ClassBean> jsonListObject = mGson.fromJson(jsonString, new TypeToken<List<ClassBean>>(){}.getType());//把JSON格式的字符串转为List
        /*for (ClassBean p : jsonListObject) {
            System.out.println("把JSON格式的字符串转为List///  "+p.toString());
        }*/
        return jsonListObject;
    }
}